import java.util.*;

public class test3 {


        public static List<List<String>> groupAnagrams(String[] strs) {
            // 创建一个 HashMap 来存储每组字母异位词
            Map<String, List<String>> map = new HashMap<>();

            // 遍历数组中的每个字符串
            for (String s : strs) {
                // 将字符串的字符排序，作为哈希表的键
                char[] charArray = s.toCharArray();
                Arrays.sort(charArray);
                String sortedStr = new String(charArray);

                // 将排序后的字符串作为键，加入对应的字母异位词列表
                map.putIfAbsent(sortedStr, new ArrayList<>());
                map.get(sortedStr).add(s);
            }

            // 将所有的字母异位词列表返回
            return new ArrayList<>(map.values());
        }

        public static void main(String[] args) {

            String[] strs1 = {"eat", "tea", "tan", "ate", "nat", "bat"};
            System.out.println(groupAnagrams(strs1));

            String[] strs2 = {""};
            System.out.println(groupAnagrams(strs2));

            String[] strs3 = {"a"};
            System.out.println(groupAnagrams(strs3));
        }


}
